package listados;

import java.awt.Color;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;

import paneles.MonedaRender;

import accesoADatos.AccesoADatos;
import datos.Servicio;

public class ListadoServicio extends ListadoDialog {

	private JLabel servicio;
	private JComboBox cbServicio;
	

	@SuppressWarnings("unchecked")
	public ListadoServicio(JFrame frame, Vector v) {
		super(frame, v);
		this.setTitle("Listado de Servicios");
			{	
			servicio = new JLabel();
			super.jPanel1.add(servicio);
			servicio.setText("Tipo de Servicio");
			servicio.setHorizontalAlignment(SwingConstants.CENTER);
			servicio.setPreferredSize(new java.awt.Dimension(120,21));
			servicio.setBorder(BorderFactory.createLineBorder(new Color(0,0,0)));
			servicio.setSize(100, 21);	
			servicio.setForeground(new Color(0,0,0));
			List lp = new ArrayList();
			lp.add(new String("Todos"));
			lp.add(new String("Corte"));
			lp.add(new String("Color"));
			ComboBoxModel cbProfesionalModel = 
				new DefaultComboBoxModel(
						lp.toArray());
			cbServicio = new JComboBox();
			super.jPanel1.add(cbServicio);
			cbServicio.setModel(cbProfesionalModel);
			cbServicio.setPreferredSize(new java.awt.Dimension(130, 21));
			cbServicio.setBorder(BorderFactory.createLineBorder(new Color(0,0,0)));
			this.paneListados1.getJTable1().getColumnModel().getColumn(3).setCellRenderer(new MonedaRender());
		}
			this.jPanel1.setSize(50,400);
			this.setSize(610, 400);
			this.setLocationRelativeTo(null);
			this.setVisible(true);
	}

	private static final long serialVersionUID = 1L;

	@SuppressWarnings("unchecked")
	public Vector cargarVector(Object object) {
		Servicio s=(Servicio)object;
		Vector v=new Vector();
		v.add(s.getNombre());
		v.add(s.getDescripcion());
		v.add(s.getTipo());
		v.add(s.getPrecio());
		return v;

		
	}
	
	@SuppressWarnings("unchecked")
	public List getLista() {
		List l=AccesoADatos.getInstance().getServicios();
		List result = new ArrayList();
		Criterio c = getCriterio();
		for (int i=0; i<l.size();i++){
			Servicio r=(Servicio)l.get(i);
			if (c.eval(r))
				result.add(r);
		}
		return result;
	}
	private Criterio getCriterio() {
		String servicio=this.cbServicio.getSelectedItem().toString();
		Criterio c=new CriterioTipoServicio(servicio);
		return c;
	}
	
}
